From e9122eca68b36fec9debe8fefd5a68b60f6b657f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 7 May 2013 08:48:01 -0400 Subject: [PATCH] Add more test cases These are taken from https://bugzilla.gnome.org/show_bug.cgi?id=696882 --- gtk/tests/window.c | 121 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/gtk/tests/window.c b/gtk/tests/window.c index a907bb6424..1f4d42c875 100644 --- a/gtk/tests/window.c +++ b/gtk/tests/window.c @@ -167,12 +167,130 @@ test_resize_popup (void) gtk_widget_destroy (window); } +static void +test_show_hide (void) +{ + GtkWidget *window; + gint w, h, w1, h1; + + g_test_bug ("696882"); + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + + gtk_widget_show (window); + + g_timeout_add (100, stop_main, NULL); + gtk_main (); + + gtk_window_get_size (GTK_WINDOW (window), &w, &h); + + gtk_widget_hide (window); + + g_timeout_add (100, stop_main, NULL); + gtk_main (); + + gtk_window_get_size (GTK_WINDOW (window), &w1, &h1); + g_assert_cmpint (w, ==, w1); + g_assert_cmpint (h, ==, h1); + + gtk_widget_show (window); + + g_timeout_add (100, stop_main, NULL); + gtk_main (); + + gtk_window_get_size (GTK_WINDOW (window), &w1, &h1); + g_assert_cmpint (w, ==, w1); + g_assert_cmpint (h, ==, h1); + + gtk_widget_destroy (window); +} + +static void +test_show_hide2 (void) +{ + GtkWidget *window; + gint x, y, w, h, w1, h1; + + g_test_bug ("696882"); + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + + gtk_widget_show (window); + + g_timeout_add (100, stop_main, NULL); + gtk_main (); + + gtk_window_get_position (GTK_WINDOW (window), &x, &y); + gtk_window_get_size (GTK_WINDOW (window), &w, &h); + gtk_widget_hide (window); + + g_timeout_add (100, stop_main, NULL); + gtk_main (); + + gtk_window_get_size (GTK_WINDOW (window), &w1, &h1); + g_assert_cmpint (w, ==, w1); + g_assert_cmpint (h, ==, h1); + + gtk_window_move (GTK_WINDOW (window), x, y); + gtk_widget_show (window); + + g_timeout_add (100, stop_main, NULL); + gtk_main (); + + gtk_window_get_size (GTK_WINDOW (window), &w1, &h1); + g_assert_cmpint (w, ==, w1); + g_assert_cmpint (h, ==, h1); + + gtk_widget_destroy (window); +} + +static void +test_show_hide3 (void) +{ + GtkWidget *window; + gint x, y, w, h, w1, h1; + + g_test_bug ("696882"); + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_default_size (GTK_WINDOW (window), 200, 200); + + gtk_widget_show (window); + + g_timeout_add (100, stop_main, NULL); + gtk_main (); + + gtk_window_get_position (GTK_WINDOW (window), &x, &y); + gtk_window_get_size (GTK_WINDOW (window), &w, &h); + gtk_widget_hide (window); + + g_timeout_add (100, stop_main, NULL); + gtk_main (); + + gtk_window_get_size (GTK_WINDOW (window), &w1, &h1); + g_assert_cmpint (w, ==, w1); + g_assert_cmpint (h, ==, h1); + + gtk_window_move (GTK_WINDOW (window), x, y); + gtk_widget_show (window); + + g_timeout_add (100, stop_main, NULL); + gtk_main (); + + gtk_window_get_size (GTK_WINDOW (window), &w1, &h1); + g_assert_cmpint (w, ==, w1); + g_assert_cmpint (h, ==, h1); + + gtk_widget_destroy (window); +} + int main (int argc, char *argv[]) { gint i; gtk_test_init (&argc, &argv); + g_test_bug_base ("http://bugzilla.gnome.org/"); for (i = 0; i < argc; i++) { @@ -182,6 +300,9 @@ main (int argc, char *argv[]) g_test_add_func ("/window/default-size", test_default_size); g_test_add_func ("/window/resize", test_resize); + g_test_add_func ("/window/show-hide", test_show_hide); + g_test_add_func ("/window/show-hide2", test_show_hide2); + g_test_add_func ("/window/show-hide3", test_show_hide3); g_test_add_func ("/window/resize-popup", test_resize_popup); return g_test_run (); -- 2.30.2